package com.cqut.dao;

import java.util.List;

import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.cqut.model.Menu;

public interface MenuMapperExtra {

	List<Map<String, Object>> findModules(
			@Param("moduleName") String moduleName, @Param("start") int start,
			@Param("end") int end);

	Object searchModuleCount(@Param("moduleName") String moduleName);

	Object judgeRepition(@Param("moduleName") String moduleName);

	Map<String, Object> findBigger(@Param("orderNo") int orderNo,
			@Param("upId") String upId);

	Map<String, Object> findSmaller(@Param("showOrder") int showOrder,
			@Param("parentCode") String parentCode);

	List<Map<String, Object>> goNextPage(
			@Param("parentCode") String parentCode, @Param("start") int start,
			@Param("end") int end);

	Map<String, Object> findModule(@Param("parent") String parent);

	Object selectLevel0(@Param("parentCode") String parentCode);

	Map<String, Object> findMaxCodeByParentCode(@Param("upId") String upId);

	List<Map<String, Object>> findModulesWithLimit(
			@Param("moduleName") String moduleName,
			@Param("parentCode") String parentCode, @Param("start") int start,
			@Param("end") int end);

	int deleteByIdsAndChild(@Param("menuIdList") String[] menuIdList);

	Map<String, Object> getModuleObjectById(@Param("menuId") String menuId);

	List<Map<String, Object>> getLoadList(Menu menu, @Param("start") int i,
			@Param("end") int j);

	List<Map<String, Object>> getLoadList(@Param("menuId") String menuId,
			@Param("level") Integer level, @Param("start") int calculateStart,
			@Param("end") int calculateEnd);

	Long getLoadListCount(@Param("menuId") String menuId,
			@Param("level") Integer level, @Param("start") int calculateStart,
			@Param("end") int calculateEnd);
}
